import axios from 'axios';
import config from '@/config/config';

const instance = axios.create({
  baseURL: config.baseURL,
  headers: {},
  timeout: config.timeout,
  withCredentials: true,
});

const codes = {
  SUCCESS: 0,
  ERROR: 500,
  SQL_ERROR: 501,
  NOT_LOGIN: 502,
  FAILURE: 600,
};

// // 添加响应拦截器
// instance.interceptors.response.use(
//   (response) => response, // 2xx 范围内的状态码都会触发该函数。
//   (error) => {
//     // 超出 2xx 范围的状态码都会触发该函数。
//     // 对响应错误做点什么
//     if (error.message === 'Network Error') {
//       tAlert.error('目前无法连接到服务器，请稍后再试!');
//     }
//     return Promise.reject(error);
//   },
// );

/**
 * 设置响应拦截器
 * @param success 2xx状态码的回调
 * @param error 2xx以外的状态码的回调
 */
function setResponseInterceptor(success, error) {
  instance.interceptors.response.use(success, error);
}

function get(url, { params, data } = {}) {
  return instance.request({
    method: 'GET',
    url,
    data,
    params,
  });
}

function post(url, { params, data } = {}) {
  return instance.request({
    method: 'POST',
    url,
    data,
    params,
  });
}

export default {
  codes,
  post,
  get,
  setResponseInterceptor,
};
